---
type: tutorial
title: Добавьте RSS-ленту
description: >-
  Руководство: Создайте свой первый блог на Astro —

  Установите официальный пакет Astro для создания ленты, на которую могут
  подписаться ваши читатели
i18nReady: true
---
import Box from '~/components/tutorial/Box.astro';
import Checklist from '~/components/Checklist.astro';
import PreCheck from '~/components/tutorial/PreCheck.astro';
import PackageManagerTabs from '~/components/tabs/PackageManagerTabs.astro';
import { Steps } from '@astrojs/starlight/components';

<PreCheck>
  - Установить пакет Astro для создания RSS-ленты для вашего сайта
  - Создать ленту, на которую можно подписаться и которую можно читать с помощью RSS-ридеров
</PreCheck>

## Установите пакет Astro для RSS

Astro предоставляет специальный пакет для быстрого добавления RSS-ленты на ваш сайт.

Этот официальный пакет генерирует не-HTML документ с информацией обо всех ваших постах в блоге, который может быть прочитан **ридерами лент**, такими как Feedly, The Old Reader и другими. Этот документ обновляется каждый раз, когда ваш сайт пересобирается.

Читатели могут подписаться на вашу ленту и получать уведомления при публикации новых постов на вашем сайте, что делает эту функцию популярной в блогах.

<Steps>
1. Завершите работу сервера разработки Astro и выполните следующую команду в терминале для установки пакета RSS Astro.

    <PackageManagerTabs>
      <Fragment slot="npm">
      ```shell
      npm install @astrojs/rss
      ```
      </Fragment>
      <Fragment slot="pnpm">
      ```shell
      pnpm add @astrojs/rss
      ```
      </Fragment>
      <Fragment slot="yarn">
      ```shell
      yarn add @astrojs/rss
      ```
      </Fragment>
    </PackageManagerTabs>

2. Перезапустите сервер разработки, чтобы снова начать работу над вашим проектом Astro.

    <PackageManagerTabs>
      <Fragment slot="npm">
      ```shell
      npm run dev
      ```
      </Fragment>
      <Fragment slot="pnpm">
      ```shell
      pnpm run dev
      ```
      </Fragment>
      <Fragment slot="yarn">
      ```shell
      yarn run dev
      ```
      </Fragment>
    </PackageManagerTabs>
</Steps>

## Создайте `.xml` документ для ленты

<Steps>
1. Создайте новый файл в `src/pages/` с названием `rss.xml.js`

2. Скопируйте следующий код в этот новый документ, заменив свойство `site` на уникальный URL вашего сайта на Netlify. Настройте свойства `title` и `description`, и при необходимости укажите другой язык в `customData`:

    ```js title="src/pages/rss.xml.js"

    import rss, { pagesGlobToRssItems } from '@astrojs/rss';

    export async function GET(context) {
      return rss({
        title: 'Ученик Astro | Блог',
        description: 'Мое путешествие по изучению Astro',
        site: context.site,
        items: await pagesGlobToRssItems(import.meta.glob('./**/*.md')),
        customData: `<language>ru-ru</language>`,
      });
    }
    ```

3. Добавьте свойство `site` в конфигурацию Astro с уникальным URL-адресом вашего сайта в Netlify.

    ```js title="astro.config.mjs" ins={4}
    import { defineConfig } from "astro/config";

    export default defineConfig({
      site: "https://example.com"
    });
    ```

4. Перейдите на `http://localhost:4321/rss.xml` и убедитесь, что вы видите (неформатированный) текст на странице, с блоком `item` для каждого из ваших файлов `.md`. Каждый элемент должен содержать информацию о посте в блоге, такую как `title`, `url` и `description`.

    :::tip[просмотрите вашу RSS-ленту в ридере]
    Скачайте ридер лент или зарегистрируйтесь в онлайн-сервисе для чтения лент и подпишитесь на свой сайт, добавив свой URL-адрес Netlify. Вы также можете поделиться этой ссылкой с другими, чтобы они могли подписаться на ваши посты и получать уведомления о публикации новых.
    :::

</Steps>

<Box icon="check-list">

## Контрольный список

<Checklist>
- [ ] Я умею устанавливать пакеты Astro с помощью командной строки.
- [ ] Я умею создавать RSS-ленту для своего сайта.
</Checklist>
</Box>

### Ресурсы

- [Генерация элементов RSS в Astro](/ru/recipes/rss/#using-glob-imports)
